var G_TaskList;//任务list数据
var G_TaskID;//完成任务ID
var G_ScoregGrade="";//分数等级
$(document).ready(function(){
    classroomTeaching();
});

/********************************************************************************
 函数名：initDefault
 功能：初始化default页面
 输入参数: 无
 返回值：无
 创建信息：姜勇军(2015-08-5）
 修改记录：无
 审查人：无
 *******************************************************************************/

function classroomTeaching(){
    G_Prg.$('knowledgePointName').innerHTML=''+getQueryString('knowledgePointName',true)+':';
    var curPage=0;//当前页数
    var eachPageNum=10;//每页显示数条数
    var totalCount=0//总条数
    var taskStatus=-1;//任务状态，默认为最新任务：-1
    //将要显示的html用一个变量保存
    var uploadDetaidDiv = $('#uploadDetaidDiv').html();
    var markDiv = $('#markDiv').html();
    //移除html，以防id重复
    $('#uploadDetaidDiv').remove();
    $('#markDiv').remove();
    loadTab();
    loadNewTaskTable();
    setClickEven();
    /********************************************************************************
     函数名：setClickEven
     功能：指点点击事件
     输入参数: 无
     返回值：无
     创建信息：姜勇军(2015-08-05)
     修改记录：无
     审查人：无
     *******************************************************************************/
    function setClickEven(){

        //最新任务下载
      $(document).on('click','#downloadTask',function(){
            var taskID=$(this).parent().parent().find(".taskID").html();
            downloadTask(taskID);
      });
        //已上传、已完成任务下载
        $(document).on('click','.uCDownloadTask',function(){
            var taskID=$(this).parent().parent().find(".taskID").html();
            uploadDownloadTask(taskID);
        });
       //任务上传
      $(document).on('click','.uploadTask',function(){
          var taskID=$(this).parent().parent().find(".taskID").html();
          var data={taskID:taskID};
         G_Popup.confirm('上传文件',$("#UploadTask").tmpl(data),'确认','取消',function(){UploadTask();},function(){$('.close').click();})
       });
        //评分窗口
        $(document).on('click','.mark',function(){
            G_TaskID=$(this).parent().parent().find(".taskID").html();
            G_Popup.htmlContent('评分',markDiv,'450px','250px');

        });
        //评分选择
        $(document).on('click','#grades li',function(){
            $(this).css("background","#3388FF");
            $(this).css("color","#fff");
            $('li').not($(this)).css("background","#fff");
            $('li').not($(this)).css("color","#333");
            G_ScoregGrade=$(this).html();
        })
      //提交评分
        $(document).on('click','#btn_mark',function(){
            taskMark(G_TaskID);
        })
        //隐藏评弹窗
        $(document).on('click','#btn_cancel',function(){
            $('.close').click();
        })
    }
    /********************************************************************************
     函数名：loadTab
     功能：加载选项卡显示neir
     输入参数:
     返回值：无
     创建信息：姜勇军(2015-11-12)
     修改记录：无
     审查人：无
     *******************************************************************************/
    function loadTab(){
        $( "#ul-title li" ).each(function( index,item ) {
            $(item).on('click',function(){
                $(this).addClass('active');
                $('#ul-title li').not($(this)).removeClass('active');
                if(index==0) {
                    loadNewTaskTable();
                } else if(index==1){
                    loadUploadTaskTable();
                }else if(index==2){
                   loadCompleteTaskTable();
                }
            });
        });
    }
    /********************************************************************************
     函数名：loadNewTaskTable
     功能：加载最新任务列表
     输入参数:无
     返回值：无
     创建信息：姜勇军(2015-11-18)
     修改记录：无
     审查人：无
     *******************************************************************************/
    function loadNewTaskTable(){
        taskStatus=-1;
        curPage=0;
        totalCount=0
        $('#tab_new').show();
        $('#tab_upload').hide();
        $('#tab_complete').hide();
        $('#newlist').empty();
        getTaskList();
        $("#newTask").tmpl(G_TaskList).appendTo('#newlist');
    }
    /********************************************************************************
     函数名：loadUploadTaskTable
     功能：加载以上传任务列表
     输入参数:无
     返回值：无
     创建信息：姜勇军(2015-11-18)
     修改记录：无
     审查人：无
     *******************************************************************************/
    function loadUploadTaskTable(){
        taskStatus=0;
        curPage=0;
        totalCount=0;
        $('#tab_new').hide();
        $('#tab_upload').show();
        $('#tab_complete').hide();
        $('#uploadList').empty();
        getTaskList();
        $("#uploadedTask").tmpl(G_TaskList).appendTo('#uploadList');
    }
    /********************************************************************************
     函数名：loadUploadTaskTable
     功能：加载以上传任务列表
     输入参数:无
     返回值：无
     创建信息：姜勇军(2015-11-18)
     修改记录：无
     审查人：无
     *******************************************************************************/
    function loadCompleteTaskTable(){
        taskStatus=1;
        curPage=0;
        totalCount=0;
        $('#tab_new').hide();
        $('#tab_upload').hide();
        $('#tab_complete').show();
        $('#completeList').empty();
        getTaskList();
        $("#completeTask").tmpl(G_TaskList).appendTo('#completeList');
    }

    /********************************************************************************
     函数名：getTaskList
     功能：获取任务列表
     输入参数: 无
     创建信息：姜勇军(2015-11-17)
     修改记录：无
     审查人：无
     *******************************************************************************/
    function getTaskList(){
        var knowledgePointID= getQueryString('knowledgePointID',true);
        var _success = function (json) {
            var jsonData = JSON.parse(json);
            if (jsonData.status === 200) {
                G_TaskList=jsonData.data.list;
                if(G_TaskList.length===0){
                    $('.message').html('暂无数据')
                }else{
                    $('.message').html('');
                }
                for(var i=0;i<G_TaskList.length;i++) {
                    G_TaskList[i].taskSort = curPage * 10 + i + 1;

                }
                totalCount=jsonData.data.total;
                createPageList();
            } else {
                G_Popup.alert('提示',"" + jsonData.msg +"!");
            }
        }
        var URL = '/student/task/list?&curPage='+curPage+'&eachPageNum='+eachPageNum+'&firstKnowledgePointID='+knowledgePointID+'&status='+taskStatus;
        G_AjaxApi.get(URL ,false, _success);
    }
    /********************************************************************************
     函数名：downloadTask
     功能：下载最新任务
     输入参数: 任务ID，taskID
     创建信息：姜勇军(2015-11-17)
     修改记录：无
     审查人：无
     *******************************************************************************/
    function downloadTask(taskID){
       var downLoadUrl= window.location.origin+'/student/task/download?taskID='+taskID;
       window.location.href=downLoadUrl;
    }
    /********************************************************************************
     函数名：downloadTask
     功能：下载已上传或已完成任务
     输入参数: 任务ID，taskID
     创建信息：姜勇军(2015-11-19)
     修改记录：无
     审查人：无
     *******************************************************************************/
    function  uploadDownloadTask(taskID){
        var downLoadUrl= window.location.origin+'/student/task/complete/download?taskID='+taskID;
        window.location.href=downLoadUrl;
    }
    /********************************************************************************
     函数名：UploadTask
     功能：上传任务
     输入参数: 无
     创建信息：姜勇军(2015-11-17)
     修改记录：无
     审查人：无
     *******************************************************************************/
    function UploadTask(){
        $("#documentForm").ajaxSubmit({
            type: 'post',
            url: location.origin+"/student/task/upload",
            async:true,
            data:$(this).serialize(),
            uploadProgress:function(event, posittion, total,percentComplete){
                uploadControlDisAbled();
                var percentVal=percentComplete+'%';
                G_Prg.$('progressbar').style.width=percentVal;
                G_Prg.$('progressbar').innerHTML=percentVal;
            },
            success: function(data){
                if(data.status===200) {
                    G_Prg.$('progressbar').style.width ='100%';
                    G_Prg.$('progressbar').innerHTML ='100%';
                    G_Popup.alert('提示', data.msg)
                    $('button').attr("disabled",false);
                    getTaskList();
                    $('#newlist').empty();
                    $("#newTask").tmpl(G_TaskList).appendTo('#newlist');
                    closeDialog();

                } else{
                    G_Prg.$('progressbar').style.width=0;
                    G_Prg.$('progressbar').innerHTML="0%";
                    G_Popup.alert('提示',  data.msg);
                    uploadControlAbled()
                }
            },
            error:function(josn){
                G_Prg.$('progressbar').style.width = 0;
                G_Prg.$('progressbar').innerHTML = "0%";
                uploadControlAbled();
                G_Popup.alert('提示', '上传失败');
            }
        });
    }
    /********************************************************************************
     函数名：createPageList
     功能：生成页码
     输入参数:无
     返回值：无
     创建信息：姜勇军(2015-09-15）
     修改记录：无
     审查人：无
     ********************************************************************************/
    function createPageList(){
        $('.pagination').pageBar({
            onJump: function (targetPage) {//用户点击跳转时候回调
                //参数targetPage为用户点击的页码
                //这里一般向后台请求数据,请求成功后执行下面代码,重新渲染html
                curPage = targetPage-1;
                getTaskList();
                if(taskStatus===-1){
                    $('#newlist').empty();
                    $("#newTask").tmpl(G_TaskList).appendTo('#newlist');
                }else if(taskStatus===0){
                    $('#uploadList').empty();
                    $("#uploadedTask").tmpl(G_TaskList).appendTo('#uploadList');
                }else if(taskStatus===1){
                    $('#completeList').empty();
                    $("#completeTask").tmpl(G_TaskList).appendTo('#completeList');
                }
                this.pageBar('render', {//渲染html
                    pageSize: eachPageNum, totalCount: totalCount, currPage: curPage
                })
            }
        }).pageBar('render', {//渲染html
            pageSize: eachPageNum  //每页显示数
            , totalCount: totalCount//数据总条数
            , currPage: curPage   //当前页
        });

    }
    /********************************************************************************
     函数名：uploadControlAbled
     功能：上传弹窗按钮：设置可用状态
     输入参数:无
     返回值：无
     创建信息：姜勇军(2015-11-17)
     修改记录：无
     审查人：无
     *******************************************************************************/
    function uploadControlAbled(){
        G_Prg.$('fileupload').disabled=false;
        $('button').attr("disabled",false);
    }
    /********************************************************************************
     函数名：uploadControlDisAbled
     功能：上传弹窗按钮：设置不可用状态
     输入参数:无
     返回值：无
     创建信息：姜勇军(2015-11-17)
     修改记录：无
     审查人：无
     *******************************************************************************/
    function uploadControlDisAbled(){
        G_Prg.$('fileupload').disabled=true;
        $('button').attr("disabled",true);
    }


    /********************************************************************************
     函数名：taskMark
     功能：任务评分
     输入参数: 无
     创建信息：姜勇军(2015-11-18)
     修改记录：无
     审查人：无
     *******************************************************************************/
    function taskMark(taskID){
       var score=G_ScoregGrade;
       if(score===""){
          G_Popup.alert('提示',"请选择分数");
          return;
       }
        var callBack=function(){//获取焦点
            $('#alert_modal').modal('hide');
            $('#secretkey').focus();
        }
        var secretKey=$('#secretkey').val();
        if(secretKey===""){
           G_Popup.alert('提示',"请输入密钥","确认",callBack);
           return;
        }
        var _success = function (json) {
            var jsonData = JSON.parse(json);
            if (jsonData.status === 200) {
                G_Popup.alert('提示',"" + jsonData.msg +"!");
                closeDialog();
                getTaskList();
                if(taskStatus===0) {
                    $('#uploadList').empty();
                    $("#uploadedTask").tmpl(G_TaskList).appendTo('#uploadList');
                }else if(taskStatus===1){
                    $('#completeList').empty();
                    $("#completeTask").tmpl(G_TaskList).appendTo('#completeList');
                }

            } else {
                G_Popup.alert('提示',"" + jsonData.msg +"!");
            }
        }
        var params={taskID:taskID,secretKey:secretKey,score:score };
        var URL = '/student/task/mark' ;
        G_AjaxApi.post(URL ,params,true, _success);
    }
}
/********************************************************************************
 函数名：handleFile
 功能：获取选择文件名，判断上传文件格式
 输入参数: 无
 返回值：无
 创建信息：姜勇军(2015-09-19)
 修改记录：无
 审查人：无
 *******************************************************************************/
function handleFile(){
    var fileName =G_Prg.$('fileupload').value;
    //判断上传文件格式,获取视频名称
    var fileExt=fileName.replace(/.+\./,"").toLowerCase();
    var Ext ="doc、ppt、docx、rar、zip";
    if(Ext.indexOf(fileExt)>=0){
        if(fileExt!=="") {
            G_Prg.$('txt_TaskName').value = fileName.replace(/^.+?\\([^\\]+?)(\.[^\.\\]*?)?$/gi, "$1");
            return true;
        }
    }else{
        G_Popup.alert('提示','支持上传的文件格式为WORD、PPT、RAR、ZIP，请重新上传。');
        return false;
    }
}
/********************************************************************************
 函数名：closeDialog
 功能：关闭对话框
 输入参数:无
 返回值：无
 创建信息：姜勇军（2015-09-08）
 审查人：无
 *******************************************************************************/
function closeDialog() {
    $('.close').click();
}

/********************************************************************************
 函数名：getQueryString
 功能：获取url参数
 输入参数: name获取参数名称，iframe为true 则获取当前iframe内的url内的参数
 返回值：无
 创建信息：姜勇军(2015-09-10)
 修改记录：无
 审查人：无
 *******************************************************************************/
function getQueryString(name,iframe) { //name 参数 return 对应参数的值
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var frame=iframe;
    if(frame){
        var rechargeString= window.location.search.substr(1).match(reg);
    }else{
        var rechargeString= window.parent.location.search.substr(1).match(reg);
    }
    if (rechargeString != null) return decodeURI(rechargeString[2]); return null;
}